/**
 * Description:
 * Class Name:HashSetTest
 * Date:2022/2/26 13:52
 *
 * @author LTisme
 * @version JAVA17
 */
package 疯狂Java讲义.第8章_Java集合._8_3_Set集合._8_3_1_HashSet类;

import java.util.HashSet;

// class A 的equals方法总是返回true，但没有重写其hashCode()方法
class A{
    public boolean equals(Object obj){
        return true;
    }
}

// class B 的hashCode方法总是返回1，但没有重写其hashCode()方法
class B {
    public int hashCode(){
        return 1;
    }
}

// class C 的hashCode方法总是返回2，且重写的equals方法总是返回true
class C{
    public int hashCode(){
        return 2;
    }

    @Override
    public boolean equals(Object obj) {
        return true;
    }
}

public class HashSetTest{
    public static void main(String[] args) {
        var books = new HashSet();
        books.add(new A());
        books.add(new A());
        books.add(new B());
        books.add(new B());
        books.add(new C());
        books.add(new C());
        books.add(null);
        for (var mem :
                books) {
            System.out.println(mem);
        }
    }
}
//疯狂Java讲义.第8章_Java集合._8_3_Set集合._8_3_1_HashSet类.B@1
//疯狂Java讲义.第8章_Java集合._8_3_Set集合._8_3_1_HashSet类.B@1
//疯狂Java讲义.第8章_Java集合._8_3_Set集合._8_3_1_HashSet类.C@2
//疯狂Java讲义.第8章_Java集合._8_3_Set集合._8_3_1_HashSet类.A@4eec7777
//疯狂Java讲义.第8章_Java集合._8_3_Set集合._8_3_1_HashSet类.A@3b07d329
